table of contents
| MKTEMP(1) | General Commands Manual | MKTEMP(1) |
NAZWA¶
mktemp —
twórz unikalną nazwę pliku
tymczasowego
SKŁADNIA¶
mktemp [-d]
[-q] [-u]
wzorzec
OPIS¶
Narzędzie mktemp pobiera zadany
wzorzec nazwy i zastępuje jego część by
stworzyć nazwę pliku. Wynikowa nazwa jest unikalna i nadaje
się do używania jako nazwa pliku. Wzorzec może
być dowolną nazwą pliku z dodanymi do niej
dokładnie sześcioma znakami
‘X’, na przykład
/tmp/temp.XXXXXX. Końcowe
‘X’ zastępowane są przez
numer bieżącego procesu i/lub unikalną
kombinację liter. Liczba unikalnych nazw plików, jakie
może zwrócić mktemp daje
około 26 ** 6 kombinacji.
Jeśli mktemp może
pomyślnie utworzyć unikalną nazwę pliku, to
tworzony jest plik z prawami 0600 (chyba że podano flagę
-u) zaś nazwa pliku wyświetlana jest
na standardowym wyjściu.
OPCJE¶
Dostępne są następujące opcje:
-d- Utwórz katalog zamiast pliku.
-q- Ciche zakończenie działania w przypadku błędu. Przydatne, gdy skrypt nie chce by komunikat o błędzie trafił na standardowe wyjście błędów.
-u- Działaj w trybie “unsafe” (ryzykownym). Plik
tymczasowy będzie skasowany (unlinked) przed zakończeniem
pracy
mktemp. Jest to nieco lepsze niżmktemp(3), ale nadal wprowadza `race condition' [tłum: ``wyścig'' procesów pomiędzy uzyskiwaniem unikalnych nazw i nadawaniem ich plikom]. Nie zaleca się używania tej opcji.
ZWRACANE WARTOŚCI¶
Narzędzie mktemp kończy
pracę z wartością 0 w przypadku powodzenia, zaś
1 przy błędzie.
PRZYKŁADY¶
Poniższy fragment w sh(1) ilustruje
proste zastosowanie mktemp, gdzie skrypt winien
zakończyć pracę jeśli nie może
utworzyć bezpiecznego pliku tymczasowego.
TMPFILE=`mktemp /tmp/$0.XXXXXX` || exit 1 echo "program output" >> $TMPFILE
W tym przypadku chcemy, by skrypt sam obsługiwał błąd.
TMPFILE=`mktemp -q /tmp/$0.XXXXXX` if [ $? -ne 0 ]; then echo "$0: Can't create temp file, exiting..." exit 1 fi
Zauważ, że można też zamiast sprawdzania $? sprawdzać, czy $TMPFILE ma długość zerową. Pozwala to na wykonanie sprawdzenia w dalszej części skryptu (gdyż $? zostanie nadpisane przez następne polecenie powłoki).
ZOBACZ TAKŻE¶
HISTORIA¶
Narzędzie mktemp pojawiło
się w OpenBSD.
| 20 listopada 1996 | Linux 5.14.0-427.18.1.el9_4.x86_64 |